`include "add_always.v"
`timescale 1ns/1ns

module tb_add_always;

reg [63:0] a, b;
reg cin;
wire [63:0] sum;
wire cout;

add_always u_add_always(
  .a(a),
  .b(b),
  .cin(cin),
  .sum(sum),
  .cout(cout)
);

initial begin
  $dumpfile("../dump/tb_add_always.vcd");
  $dumpvars(0, tb_add_always);
end

initial begin
  #0 a = 64'h0;
     b = 64'h0;
     cin = 1'b0;

  #20 a = 64'hffff_ffff_ffff_fffe;
  #20 b = 64'h2;
  #20 a = 64'hffff_ffff_ffff_ffff;
  #20 b = 64'hffff_ffff_ffff_ffff;
  #20 cin = 1'b1;
  $finish();
end

initial begin
  $monitor($time, " a:%d b:%d cin:%d cout:%d sum:%d", a, b, cin, cout, sum);
end

endmodule
